package cn.dengta.webapp.trade.dto;

import java.util.Date;
import javax.annotation.Nonnull;

import cn.dengta.common.model.Bean;

/**
 * 带有【偏向性】的付费关系
 */
public interface BiasedBill {

	/** 付费者用户ID */
	Long getPayUserId();

	/** 参与交易的另一方用户ID */
	Long getToUserId();

	/** 是否还需要绑定关系 */
	boolean isBindRequired();

	Date now();

	default boolean isPayer(@Nonnull Long userId) {
		return getPayUserId().longValue() == userId;
	}

	/** 是否优先使用 VIP，如果为 false，则只能使用钻石 */
	boolean isUseVipFirst();

	static <T extends Bean<Long>> T find(T from, T to, Long targetId) {
		return from.getId().equals(targetId) ? from : to;
	}

}
